package com.tax.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tax.config.exception.ApiException;
import com.tax.config.jwt.JwtUserInfo;
import com.tax.config.page.PageResult;
import com.tax.config.response.Response;
import com.tax.dto.req.*;
import com.tax.dto.res.LoginRes;
import com.tax.dto.res.UserInfoRes;
import com.tax.dto.res.UserPageInfo;
import com.tax.entity.TdUser;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author ddh142782（段德辉）
 * @since 2023-03-04
 */
public interface ITdUserService extends IService<TdUser> {

    /**
     * 获取用户信息
     * @param req
     * @return
     */
    UserInfoRes getUserInfo(UserInfoReq req);

    /**
     * 根据手机号查询用户信息
     * @param phone
     * @return
     */
    TdUser selectUserByPhone(String phone);

    /**
     * 获取用户列表信息
     * @param req
     * @return
     */
    PageResult<UserPageInfo> userPage(UserPageReq req);

    /**
     * 根据token获取用户信息
     * @param req
     * @return
     */
    Response<JwtUserInfo> v2jwtUserInfo(TokenReq req);

    /**
     * 用户登录
     * @param req
     * @return
     */
    LoginRes appLogin(LoginReq req) throws ApiException;

    /**
     * 修改用户密码
     * @param req
     * @return
     */
    UserInfoRes editPassword(EditPasswordReq req) throws ApiException;

    TdUser createUser(String phoneNum);
}
